import re


#findall()  匹配字符串中所有符合正则的内容
def use_find_all():
    list = re.findall(r"\d+", "我的电话是:10086,我女朋友的电话是:10010")
    print(list)

#finditer 匹配字符串中的所有的内容(返回的是迭代器) 从迭代器中获取内容需要group
def  use_find_iter():
    it = re.finditer(r"\d+", "我的电话是:10086,我女朋友的电话是:10010")
    for item in it:
        print(item.group())

#search 找到一个结果就返回 返回的结果是match对象,拿数据需要group
def use_search():
    s = re.search(r"\d+", "我的电话是:10086,我女朋友的电话是:10010")
    print(s.group())

#match 从头开始匹配 就像默认加了一个^  开头符号
def use_match():
    m = re.match(r"\d+", "10086,我女朋友的电话是:10010")
    print(m.group())

#预加载正则
def use_compile():
    rec = re.compile(r"\d+")
    iter  = rec.finditer("我的电话是:10086,我女朋友的电话是:10010")
    for item in iter:
        print(item.group())


#(?P<分组名字>正则表达式) 可以单独从正则匹配的内容中进一步提取到xxx名字的内容
def use_group_name():
    s = """
        <div class='jay'><span id='1'>周杰伦</span></div>
        <div class='jj'><span id='2'>林俊杰</span></div>
        <div class='jason'><span id='3'>陈奕迅</span></div>
        <div class='zj'><span id='4'>张杰</span></div>
    """

    rec = re.compile(r"<div class='.*?'><span id='(?P<id>\d+)'>(?P<name>.*?)</span></div>",re.S)#re.S: 让.能匹配换行符
    iter = rec.finditer(s)
    for item in iter:
        print(item.group("id"))
        print(item.group("name"))


if __name__ == '__main__':
    # use_find_all()
    # use_find_iter()
    # use_search()
    # use_match()
    # use_compile()
    use_group_name()